Peer-to-peer (P2P) systems, sometimes known as file sharing systems, may break a file into many pieces, or fragments, which may be distributed to different locations in a computer network and then reassembled at a user location when a user desires to access the file. For example, digital media files may be fragmented and distributed over computer networks such as the worldwide web and/or other wireless and/or mobile networks. As such, each file fragment may be provided to a user from many different network locations. In distributed form, the entire file may not be present in any one network location; rather, only one or a few fragments may be stored at any particular location. Thus, the fragments of the file may be generally unusable until reassembled or reconstituted.
For example, BitTorrent is the name of P2P file distribution protocol designed to widely distribute large amounts of data without incurring the corresponding consumption in server and bandwidth resources. In particular, the BitTorrent protocol breaks a file down into smaller fragments, typically about 256 kilobytes (KB) in size. Peers may download missing fragments from each other, and may upload fragments to peers that request them. For instance, users may be provided with a torrent file, which may contain the filename, size, and a checksum/hash of each fragment in the file. The torrent file may be distributed to users, for example, via e-mail or via a website. The torrent file may also tell the client the address of a tracker server, which, in turn, maintains a log of which users are downloading the file and where the file and its fragments reside.
In conventional P2P systems, the file fragments may not be downloaded in sequential order, and thus may need to be reassembled by the receiving machine. Accordingly, identification information, sometimes called “tags”, may be applied to each fragment so that a file fragmentation and reconstitution system can identify the fragments as belonging to a particular file. More particularly, the fragments may be “tagged” to aid in management and/or control of distribution, storage, and/or transfers of the fragments/tags, and/or reassembly/reconstitution of the original file. Thus a system can appropriately select, transfer, and reconstitute the fragments of a particular file to provide the actual file based on the tags. However, unless fragments become lost or otherwise corrupted, the fragments and the tags may typically be static, such that they may not be intentionally modified by the system. In addition, the identifiers, version numbers, and other information embedded in the tags may be easily decipherable. As such, conventional file fragmentation systems and/or files transferred thereby may be susceptible to tampering and/or alteration by unauthorized parties, also known as “hackers”.
In addition, due to the proliferation of file sharing over such computer networks, concerns have been raised by owners of copyright and/or other intellectual property rights in digital media products. These concerns have led to the use and/or proposal of digital rights management (DRM) technologies. DRM provides for secure distribution of digital content. In particular, DRM may allow users to access only files which they are authorized to access, and only in the forms or manner for which they are so authorized. The basic components of DRM technology may include the digital multimedia content, which may be transferred between the content provider and a user in a secure fashion, and the rights, which may represent the permissions, obligations, and/or constraints associated with the use of the digital media content. For example, the rights may take the form of a separate encryption key, which may be provided to the user directly or via the same system as the file itself. The key may be required to be available to a device in order to enable rendering of the digital multimedia content. However, the encryption and decryption steps may be computationally demanding, which may become an increasingly critical problem as the scale of such a system is increased.